InjectableConstructor{
  this.constructor=constructor.getJavaMember();
  this.parameterInjectionPoints=new ParameterInjectionPoint[constructor.getParameters().size()];
  this.beans=new Bean[parameterInjectionPoints.length];
  this.beanManager=beanManager;
  for (  AnnotatedParameter<?> parameter : constructor.getParameters()) {
    final Set<Annotation> qualifiers=new HashSet<Annotation>();
    for (    Annotation annotation : parameter.getAnnotations()) {
      if (beanManager.isQualifier(annotation.annotationType())) {
        qualifiers.add(annotation);
    final Set<Bean<?>> ipBeans=beanManager.getBeans(injectionPoint);
    final Bean<?> ipBean=beanManager.resolve(ipBeans);
    beans[parameter.getPosition()]=ipBean;
}
createInstance{
  final Object[] params=new Object[beans.length];
  for (int i=0; i < beans.length; ++i) {
    params[i]=beanManager.getReference(parameterInjectionPoints[i],beans[i],ctx);
  return constructor.newInstance(params);
}
